﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using LTHD_Web.WS;

namespace LTHD_Web
{
    public partial class Detail : System.Web.UI.Page
    {
        Service1SoapClient ws = new Service1SoapClient();
        List<CauHoiDTO> dsCauHoi = new List<CauHoiDTO>();
        DiaDiemDTO diaDiem = new DiaDiemDTO();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int diadiemid = 0;
                if (Session["end"] == null)
                {
                    Session["end"] = 0;
                }
                if (Session["cauHienThoi"] == null)
                {
                    Session["cauHienThoi"] = 0;
                }
                if (Session["soCauDung"] == null)
                {
                    Session["soCauDung"] = 0;
                }
                if (Request["diadiemid"] != null)
                {
                    diadiemid = int.Parse(Request["diadiemid"]);
                    diaDiem = ws.getDiaDiemById(diadiemid);
                    //them dia diem
                    lbTenDiaDiemTitle.Text = diaDiem.Ten.ToUpper();
                    lbTenDiaDiem.Text = diaDiem.Ten;
                    lbDiaChi.Text = diaDiem.DiaChi;
                    lbChiTiet.Text = diaDiem.ChiTiet;

                    if (Session["diaDiemId"] == null)
                    {
                        Session["diaDiemId"] = diadiemid;
                    }
                    dsCauHoi = ws.getQuestionsByDiaDiemId(diadiemid);
                    if (dsCauHoi != null)
                    {
                        if (Session["dsCauHoi"] == null)
                        {
                            Session["dsCauHoi"] = dsCauHoi;
                        }
                        if (dsCauHoi.Count > 0)
                        {
                            CauHoiDTO ch = dsCauHoi[0];
                            showCauHoi(ch);
                        }
                    }
                    else
                    {
                        lbCauHoi.Text = "CHƯA CÓ CÂU HỎI CHO ĐỊA ĐIỂM NÀY";
                    }
                    if (dsCauHoi.Count == 0)
                    {
                        lbCauHoi.Text = "Không có câu hỏi cho địa điểm này";
                        anBangCauHoi();
                    }
                }
            }

        }
        private void showCauHoi(CauHoiDTO ch)
        {
            lbCauHoi.Text = ch.NoiDung;
            rbA.Text = ch.DapAnA; rbB.Text = ch.DapAnB; rbC.Text = ch.DapAnC; rbD.Text = ch.DapAnD; rbE.Text = ch.DapAnE;
            rbA.Checked = true;
        }
        private void anBangCauHoi()
        {
            //show kết quả đúng
            rbA.Visible = false;
            rbB.Visible = false;
            rbC.Visible = false;
            rbD.Visible = false;
            rbE.Visible = false;
            btnChon.Visible = false;
        }
        private void hienBangCauHoi()
        {
            lbCauHoi.Text = "";
            rbA.Visible = true;
            rbB.Visible = true;
            rbC.Visible = true;
            rbD.Visible = true;
            rbE.Visible = true;
            btnChon.Visible = true;
        }
        protected void btnChon_Click(object sender, EventArgs e)
        {
            //Kiem tra trả lời
            bool traLoiDung = false;
            int cauHienThoi = (Int32)Session["cauHienThoi"];
            List<CauHoiDTO> dsCauHoi = (List<CauHoiDTO>)Session["dsCauHoi"];
            CauHoiDTO cauHoiHienThoi = dsCauHoi[cauHienThoi];
            if (rbA.Checked && cauHoiHienThoi.ADung == 1)
            {
                Session["soCauDung"] = (Int32)Session["soCauDung"] + 1;
                traLoiDung = true;
            }
            else if (rbB.Checked && cauHoiHienThoi.BDung == 1)
            {
                Session["soCauDung"] = (Int32)Session["soCauDung"] + 1;
                traLoiDung = true;
            }
            else if (rbC.Checked && cauHoiHienThoi.CDung == 1)
            {
                Session["soCauDung"] = (Int32)Session["soCauDung"] + 1;
                traLoiDung = true;
            }
            else if (rbD.Checked && cauHoiHienThoi.DDung == 1)
            {
                Session["soCauDung"] = (Int32)Session["soCauDung"] + 1;
                traLoiDung = true;
            }
            else if (rbE.Checked && cauHoiHienThoi.EDung == 1)
            {
                Session["soCauDung"] = (Int32)Session["soCauDung"] + 1;
                traLoiDung = true;
            }
            KetQuaDTO ketQua = new KetQuaDTO();

            if (traLoiDung)//luu xuống CSDL
            {
                ketQua.KetQua = 1;
            }
            else
            {
                ketQua.KetQua = 0;
            }
            TaiKhoanDTO taiKhoan = (TaiKhoanDTO)Session["taiKhoan"];
            CauHoiDTO cauHoi = dsCauHoi[cauHienThoi];

            ketQua.NguoiTraLoi = taiKhoan.Id;
            ketQua.CauHoi = cauHoi.Id;
            ketQua.NgayTraLoi = DateTime.Now;
            bool luu = ws.insertResult(ketQua);
            //Xu lý tiếp theo
            cauHienThoi = cauHienThoi + 1;
            Session["cauHienThoi"] = cauHienThoi;
            int end = (Int32)Session["end"];
            List<CauHoiDTO> cauHoiList = (List<CauHoiDTO>)Session["dsCauHoi"];
            if (cauHienThoi == cauHoiList.Count || cauHienThoi == 10)//het cau hỏi
            {
                Session["end"] = 1;
                int kq = (Int32)Session["soCauDung"];
                lbCauHoi.Text = "Bạn đã trả lời xong, " + kq + " câu đúng";
                anBangCauHoi();
            }
            else
            {
                CauHoiDTO ch = new CauHoiDTO();
                ch = cauHoiList[cauHienThoi];
                showCauHoi(ch);
            }
        }
    }
}